package negocio;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.imageio.ImageIO;

/**
 * Representa um cenário do jogo, com a imagem de fundo e seus hotspots. Não
 * armazena o comportamento do jogo, isso deve ser feito por outra classe que
 * use um cenário e adicione o comportamento (como fazer os inimigos aparecerem
 * e andarem sobre os hotspots).
 */
public abstract class Cenario {

	private BufferedImage fundo;
	private List<HotSpot> hotspots = new ArrayList<HotSpot>();

	/**
	 * Cria um cenário.
	 * 
	 * @param urlImagem
	 *            o endereço do arquivo da imagem de fundo
	 */
	public Cenario(String urlImagem) {
		try {
			this.fundo = ImageIO.read(new File(urlImagem));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public BufferedImage getImage() {
		return fundo;
	}

	/**
	 * Recupera a lista dos hotspots desse cenário. Note que não há um set para
	 * contrapor essa função pois não é necessário, uma lista vazia de hotspots
	 * é criada junto com os objetos dessa classe. Use esta função para
	 * adicionar mais hotspots ao cenário.
	 * 
	 * @return
	 */
	public List<HotSpot> getHotspots() {
		return hotspots;
	}

}
